<?php

namespace App\Models\news;

use App\Models\admin\AdminUserModel;
use App\Models\BaseModel;
use lxs\tools\Tools;

class NewsTemplateModel extends BaseModel
{
    protected $table = 'news_template';
    protected $primaryKey = 'id';

    /**
     * 获取消息类型
     */
    public static function getClassValues($value=''): array|string
    {
        $arr = [
            1 => '平台活动',
            2 => '平台通知',
            3 => '新产品上线'
        ];
        if ( is_numeric($value) && $value > 0 && $value < 4 ) {
            return $arr[$value];
        } else if ($value != '') {
            return array_search($value, $arr);
        }
        return $arr;
    }


    /**
     * 获取接收人群类型
     * @param $value
     */
    public static function getReceiveValues($value=''): array|string
    {
        $arr = [
            1 => '所有人',
            2 => '新用户',
            3 => '老用户',
            4 => '会员(后续可能会加入)',
        ];
        if ( is_numeric($value) && $value > 0 && $value < 5 ) {
            return $arr[$value];
        } else if ($value != '') {
            return array_search($value, $arr);
        }
        return $arr;
    }


    /**
     * 发布状态
     */
    public static function getSendTypeValues($value='')
    {
        $arr = [
            1 => '即时发布',
            2 => '定时发布',
        ];
        if ( is_numeric($value) && $value > 0 && $value < 3 ) {
            return $arr[$value];
        } else if ($value != '') {
            return array_search($value, $arr);
        }
        return $arr;
    }


    /**
     * 获取状态
     * @param $value
     */
    public static function getStatusValues($value='')
    {
        $arr = [
            0 => '待发布',
            1 => '已发布',
            2 => '发布失败',
        ];
        if ( is_numeric($value) && $value < 4 ) {
            return $arr[$value];
        } else if ($value != '') {
            return array_search($value, $arr);
        }
        return $arr;
    }

    public function getOperator(): \Illuminate\Database\Eloquent\Relations\BelongsTo
    {
        return $this->belongsTo(AdminUserModel::class, 'operator_id', 'id');
    }
}
